Encapsulation, Operator Overloading, and Error Class Mechanisms in OCL
نویسندگان
چکیده
Checking models for correctness or compatibility using standard formal modeling techniques such as OCL has merits in abstraction and compactness. However, it is inconvenient for developers, since there are no standard mechanisms how to handle large and complex OCL constraints. Therefore, this paper presents an approach how to split complex OCL constraints into multiple ones by defining helper functions and pack these into an OCL/P library with encapsulation mechanisms. Another drawback of using complex OCL constraints at present is the lack of descriptive and user-friendly error messages. Hence, this paper introduces an OCL extension that allows specifying error classes by synthesizing witnesses pointing directly to constraint violations. All approaches are shown on Component & Connector model examples, where OCL/P is used on the meta-level to verify backwards compatibility of interfaces.
منابع مشابه
Perceptual complexity of object oriented systems: a student view
ion Class Design Encapsulation, intra class complexity, proper placement of methods and attributes, choice of class protocol. Labels or names of attributes and methods. Number of attributes, etc. Use of global variables, polymorphism, or information hiding. CD.2 number of methods per class CD.6 class vs instance variables what to put in each CD.7 Polymorphism and information hiding CD.10 underl...
متن کاملHow to Express C++ Concepts in Fortran90
This paper summarizes techniques for emulating in Fortran90 the most important object-oriented concepts of C++: classes (including abstract data types, encapsulation and function overloading), inheritance and dynamic dispatching.
متن کاملSalah Sadou
Based on an experiment using three languages under .NET, this paper argues that the semantic di erences between these languages regarding method overloading and overriding give rise to signi cant complexity and break encapsulation. We rst recall the various interpretations of overriding and overloading in object oriented languages through what we call language signatures. Then, we perform an ex...
متن کاملMultiproperties Koen Vanderkimpen
Properties, which occur in C#, provide good support for features of objects with singular multiplicity and allow straightforward implementation and use of an object’s encapsulated state. If, however, used for features with a higher multiplicity, usually represented by collection objects, they fail to provide a natural approach to proper encapsulation of the one-to-many aspect of such characteri...
متن کاملTowards a Uniform Deductive Object-Oriented Database Language
Deductive object-oriented databases are intended to integrate the deductive and object-oriented database techniques to combine the best of two approaches and to overcome their inherent shortcomings, with a number of deductive object-oriented database languages proposed. However, most of these languages are only structurally object-oriented. Important behaviorally object-oriented features such a...
متن کامل